<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-pragma">{-# OPTIONS_GHC -fno-warn-unused-binds -fno-warn-missing-signatures #-}</span><span>
</span><span id="line-2"></span><span class="hs-pragma">{-# LANGUAGE CPP,MagicHash #-}</span><span>
</span><span id="line-3"></span><span class="hs-pragma">{-# LINE 1 &quot;boot/Lexer.x&quot; #-}</span><span>
</span><span id="line-1"></span><span>
</span><span id="line-2"></span><span class="hs-comment">-----------------------------------------------------------------------------</span><span>
</span><span id="line-3"></span><span class="hs-comment">-- |</span><span>
</span><span id="line-4"></span><span class="hs-comment">-- Module      :  Distribution.Fields.Lexer</span><span>
</span><span id="line-5"></span><span class="hs-comment">-- License     :  BSD3</span><span>
</span><span id="line-6"></span><span class="hs-comment">--</span><span>
</span><span id="line-7"></span><span class="hs-comment">-- Maintainer  :  cabal-devel@haskell.org</span><span>
</span><span id="line-8"></span><span class="hs-comment">-- Portability :  portable</span><span>
</span><span id="line-9"></span><span class="hs-comment">--</span><span>
</span><span id="line-10"></span><span class="hs-comment">-- Lexer for the cabal files.</span><span>
</span><span id="line-11"></span><span class="hs-pragma">{-# LANGUAGE CPP #-}</span><span>
</span><span id="line-12"></span><span class="hs-pragma">{-# LANGUAGE BangPatterns #-}</span><span class="hs-cpp">
#ifdef CABAL_PARSEC_DEBUG
</span><span class="hs-pragma">{-# LANGUAGE PatternGuards #-}</span><span class="hs-cpp">
#endif
</span><span class="hs-pragma">{-# OPTIONS_GHC -fno-warn-unused-imports #-}</span><span>
</span><span id="line-17"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">Distribution.Fields.Lexer</span><span>
</span><span id="line-18"></span><span>  </span><span class="hs-special">(</span><span class="hs-identifier">ltest</span><span class="hs-special">,</span><span> </span><span class="hs-identifier">lexToken</span><span class="hs-special">,</span><span> </span><span class="hs-identifier">Token</span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="hs-identifier">LToken</span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-19"></span><span>  </span><span class="hs-special">,</span><span class="hs-identifier">bol_section</span><span class="hs-special">,</span><span> </span><span class="hs-identifier">in_section</span><span class="hs-special">,</span><span> </span><span class="hs-identifier">in_field_layout</span><span class="hs-special">,</span><span> </span><span class="hs-identifier">in_field_braces</span><span>
</span><span id="line-20"></span><span>  </span><span class="hs-special">,</span><span class="hs-identifier">mkLexState</span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-21"></span><span>
</span><span id="line-22"></span><span class="hs-comment">-- [Note: boostrapping parsec parser]</span><span>
</span><span id="line-23"></span><span class="hs-comment">--</span><span>
</span><span id="line-24"></span><span class="hs-comment">-- We manually produce the `Lexer.hs` file from `boot/Lexer.x` (make lexer)</span><span>
</span><span id="line-25"></span><span class="hs-comment">-- because boostrapping cabal-install would be otherwise tricky.</span><span>
</span><span id="line-26"></span><span class="hs-comment">-- Alex is (atm) tricky package to build, cabal-install has some magic</span><span>
</span><span id="line-27"></span><span class="hs-comment">-- to move bundled generated files in place, so rather we don't depend</span><span>
</span><span id="line-28"></span><span class="hs-comment">-- on it before we can build it ourselves.</span><span>
</span><span id="line-29"></span><span class="hs-comment">-- Therefore there is one thing less to worry in bootstrap.sh, which is a win.</span><span>
</span><span id="line-30"></span><span class="hs-comment">--</span><span>
</span><span id="line-31"></span><span class="hs-comment">-- See also https://github.com/haskell/cabal/issues/4633</span><span>
</span><span id="line-32"></span><span class="hs-comment">--</span><span>
</span><span id="line-33"></span><span>
</span><span id="line-34"></span><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">Prelude</span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-35"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="hs-identifier">Prelude</span><span> </span><span class="hs-keyword">as</span><span> </span><span class="hs-identifier">Prelude</span><span>
</span><span id="line-36"></span><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">Distribution.Compat.Prelude</span><span>
</span><span id="line-37"></span><span>
</span><span id="line-38"></span><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">Distribution.Fields.LexerMonad</span><span>
</span><span id="line-39"></span><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">Distribution.Parsec.Position</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">Position</span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="hs-identifier">incPos</span><span class="hs-special">,</span><span> </span><span class="hs-identifier">retPos</span><span class="hs-special">)</span><span>
</span><span id="line-40"></span><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">Data.ByteString</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">ByteString</span><span class="hs-special">)</span><span>
</span><span id="line-41"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="hs-identifier">Data.ByteString</span><span> </span><span class="hs-keyword">as</span><span> </span><span class="hs-identifier">B</span><span>
</span><span id="line-42"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="hs-identifier">Data.ByteString.Char8</span><span> </span><span class="hs-keyword">as</span><span> </span><span class="hs-identifier">B.Char8</span><span>
</span><span id="line-43"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="hs-identifier">Data.Word</span><span> </span><span class="hs-keyword">as</span><span> </span><span class="hs-identifier">Word</span><span class="hs-cpp">

#ifdef CABAL_PARSEC_DEBUG
</span><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">Debug.Trace</span><span>
</span><span id="line-47"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="hs-identifier">Data.Vector</span><span> </span><span class="hs-keyword">as</span><span> </span><span class="hs-identifier">V</span><span>
</span><span id="line-48"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="hs-identifier">Data.Text</span><span>   </span><span class="hs-keyword">as</span><span> </span><span class="hs-identifier">T</span><span>
</span><span id="line-49"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="hs-identifier">Data.Text.Encoding</span><span> </span><span class="hs-keyword">as</span><span> </span><span class="hs-identifier">T</span><span>
</span><span id="line-50"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="hs-identifier">Data.Text.Encoding.Error</span><span> </span><span class="hs-keyword">as</span><span> </span><span class="hs-identifier">T</span><span class="hs-cpp">
#endif
</span><span class="hs-cpp">
#if __GLASGOW_HASKELL__ &gt;= 603
</span><span class="hs-cpp">#include &quot;ghcconfig.h&quot;
</span><span class="hs-cpp">#elif defined(__GLASGOW_HASKELL__)
</span><span class="hs-cpp">#include &quot;config.h&quot;
</span><span class="hs-cpp">#endif
</span><span class="hs-cpp">#if __GLASGOW_HASKELL__ &gt;= 503
</span><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">Data.Array</span><span class="hs-cpp">
#else
</span><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">Array</span><span class="hs-cpp">
#endif
</span><span class="hs-cpp">#if __GLASGOW_HASKELL__ &gt;= 503
</span><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">Data.Array.Base</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">unsafeAt</span><span class="hs-special">)</span><span>
</span><span id="line-65"></span><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">GHC.Exts</span><span class="hs-cpp">
#else
</span><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">GlaExts</span><span class="hs-cpp">
#endif
</span><span class="hs-identifier">alex_tab_size</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">Int</span><span>
</span><span id="line-70"></span><span class="hs-identifier">alex_tab_size</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-number">8</span><span>
</span><span id="line-71"></span><span class="hs-identifier">alex_base</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">AlexAddr</span><span>
</span><span id="line-72"></span><span class="hs-identifier">alex_base</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">AlexA#</span><span>
</span><span id="line-73"></span><span>  </span><span class="hs-string">&quot;\x12\xff\xff\xff\xf9\xff\xff\xff\xfb\xff\xff\xff\x01\x00\x00\x00\x2f\x00\x00\x00\x50\x00\x00\x00\xd0\x00\x00\x00\x48\xff\xff\xff\xdc\xff\xff\xff\x51\xff\xff\xff\x6d\xff\xff\xff\x6f\xff\xff\xff\x50\x01\x00\x00\x74\x01\x00\x00\x70\xff\xff\xff\x68\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\xa3\x01\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x00\x00\x00\xd1\x01\x00\x00\xfb\x01\x00\x00\x7b\x02\x00\x00\xfb\x02\x00\x00\x00\x00\x00\x00\x7b\x03\x00\x00\x7d\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x6d\x00\x00\x00\x6b\x00\x00\x00\xfc\x03\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x6f\x00\x00\x00\x1c\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00&quot;#</span><span>
</span><span id="line-74"></span><span>
</span><span id="line-75"></span><span class="hs-identifier">alex_table</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">AlexAddr</span><span>
</span><span id="line-76"></span><span class="hs-identifier">alex_table</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">AlexA#</span><span>
</span><span id="line-77"></span><span>  </span><span class="hs-string">&quot;\x00\x00\x09\x00\x0f\x00\x11\x00\x02\x00\x11\x00\x12\x00\x00\x00\x12\x00\x13\x00\x03\x00\x11\x00\x07\x00\x10\x00\x12\x00\x25\x00\x14\x00\x11\x00\x10\x00\x11\x00\x14\x00\x11\x00\x12\x00\x23\x00\x12\x00\x0f\x00\x28\x00\x02\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x08\x00\x10\x00\x00\x00\x14\x00\x00\x00\x00\x00\x08\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\x2e\x00\xff\xff\xff\xff\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x26\x00\x28\x00\xff\xff\xff\xff\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x26\x00\x0f\x00\x11\x00\x17\x00\x26\x00\x12\x00\x25\x00\x11\x00\x2a\x00\x00\x00\x12\x00\x00\x00\x15\x00\x00\x00\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\x00\x00\x00\x17\x00\x26\x00\x00\x00\x25\x00\x00\x00\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x0e\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\x23\x00\xff\xff\xff\xff\x24\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\x1e\x00\x0d\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x00\x00\x1f\x00\x1f\x00\x1e\x00\x1e\x00\x1e\x00\x19\x00\x1a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x1f\x00\x1e\x00\x1f\x00\x1e\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x1e\x00\x22\x00\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x1d\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x0c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x1e\x00\x1e\x00\x1e\x00\x1e\x00\xff\xff\xff\xff\xff\xff\x1e\x00\x1e\x00\x1e\x00\x18\x00\x1a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x1e\x00\xff\xff\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x1e\x00\xff\xff\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1e\x00\xff\xff\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x00\x00\xff\xff\xff\xff\x1e\x00\x1e\x00\x1e\x00\x1a\x00\x1a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x1e\x00\xff\xff\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x1e\x00\xff\xff\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x1c\x00\x1e\x00\x00\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x1e\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x00\xff\xff\x1e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x00\x00\xff\xff\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00&quot;#</span><span>
</span><span id="line-78"></span><span>
</span><span id="line-79"></span><span class="hs-identifier">alex_check</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">AlexAddr</span><span>
</span><span id="line-80"></span><span class="hs-identifier">alex_check</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">AlexA#</span><span>
</span><span id="line-81"></span><span>  </span><span class="hs-string">&quot;\xff\xff\xef\x00\x09\x00\x0a\x00\x09\x00\x0a\x00\x0d\x00\xbf\x00\x0d\x00\x2d\x00\x09\x00\x0a\x00\xbb\x00\xa0\x00\x0d\x00\xa0\x00\xa0\x00\x0a\x00\x09\x00\x0a\x00\x09\x00\x0a\x00\x0d\x00\x0a\x00\x0d\x00\x20\x00\x0a\x00\x20\x00\x0a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\x2d\x00\x20\x00\xff\xff\x20\x00\xff\xff\xff\xff\x2d\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x09\x00\x0a\x00\x09\x00\x09\x00\x0d\x00\x09\x00\x0a\x00\x09\x00\xff\xff\x0d\x00\xff\xff\x7b\x00\xff\xff\x7d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x20\x00\x20\x00\xff\xff\x20\x00\xff\xff\x20\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\x7d\x00\xff\xff\x7f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc2\x00\xff\xff\xc2\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc2\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc2\x00\xff\xff\xc2\x00\xff\xff\x7f\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc2\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\xc2\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\x22\x00\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x5c\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\x5c\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\x7f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x7f\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\xff\xff\xff\xff\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\x22\x00\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\xff\xff\xff\xff\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\x5c\x00\xff\xff\x5e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7c\x00\x7f\x00\x7e\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\xff\xff\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\xff\xff\x7d\x00\xff\xff\x7f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff&quot;#</span><span>
</span><span id="line-82"></span><span>
</span><span id="line-83"></span><span class="hs-identifier">alex_deflt</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">AlexAddr</span><span>
</span><span id="line-84"></span><span class="hs-identifier">alex_deflt</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">AlexA#</span><span>
</span><span id="line-85"></span><span>  </span><span class="hs-string">&quot;\xff\xff\xff\xff\xff\xff\xff\xff\x2b\x00\x27\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x13\x00\xff\xff\xff\xff\xff\xff\xff\xff\x18\x00\x1b\x00\x1b\x00\x1b\x00\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x27\x00\xff\xff\xff\xff\xff\xff\x2b\x00\xff\xff\xff\xff\xff\xff\xff\xff&quot;#</span><span>
</span><span id="line-86"></span><span>
</span><span id="line-87"></span><span class="hs-identifier">alex_accept</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">listArray</span><span> </span><span class="hs-special">(</span><span class="hs-number">0</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">Int</span><span class="hs-special">,</span><span> </span><span class="hs-number">47</span><span class="hs-special">)</span><span>
</span><span id="line-88"></span><span>  </span><span class="hs-special">[</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">29</span><span>
</span><span id="line-89"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">28</span><span>
</span><span id="line-90"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">27</span><span>
</span><span id="line-91"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">26</span><span>
</span><span id="line-92"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAccNone</span><span>
</span><span id="line-93"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAccNone</span><span>
</span><span id="line-94"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAccNone</span><span>
</span><span id="line-95"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAccNone</span><span>
</span><span id="line-96"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAccNone</span><span>
</span><span id="line-97"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAccNone</span><span>
</span><span id="line-98"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAccNone</span><span>
</span><span id="line-99"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAccNone</span><span>
</span><span id="line-100"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAccNone</span><span>
</span><span id="line-101"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAccNone</span><span>
</span><span id="line-102"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAccNone</span><span>
</span><span id="line-103"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAccNone</span><span>
</span><span id="line-104"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAccNone</span><span>
</span><span id="line-105"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">25</span><span>
</span><span id="line-106"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">24</span><span>
</span><span id="line-107"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAccSkip</span><span>
</span><span id="line-108"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">23</span><span>
</span><span id="line-109"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">22</span><span>
</span><span id="line-110"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">21</span><span>
</span><span id="line-111"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAccSkip</span><span>
</span><span id="line-112"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAccSkip</span><span>
</span><span id="line-113"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">20</span><span>
</span><span id="line-114"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">19</span><span>
</span><span id="line-115"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">18</span><span>
</span><span id="line-116"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">17</span><span>
</span><span id="line-117"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">16</span><span>
</span><span id="line-118"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">15</span><span>
</span><span id="line-119"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">14</span><span>
</span><span id="line-120"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">13</span><span>
</span><span id="line-121"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">12</span><span>
</span><span id="line-122"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">11</span><span>
</span><span id="line-123"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">10</span><span>
</span><span id="line-124"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">9</span><span>
</span><span id="line-125"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">8</span><span>
</span><span id="line-126"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAccSkip</span><span>
</span><span id="line-127"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">7</span><span>
</span><span id="line-128"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">6</span><span>
</span><span id="line-129"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">5</span><span>
</span><span id="line-130"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAccSkip</span><span>
</span><span id="line-131"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">4</span><span>
</span><span id="line-132"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">3</span><span>
</span><span id="line-133"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">2</span><span>
</span><span id="line-134"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">1</span><span>
</span><span id="line-135"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-number">0</span><span>
</span><span id="line-136"></span><span>  </span><span class="hs-special">]</span><span>
</span><span id="line-137"></span><span>
</span><span id="line-138"></span><span class="hs-identifier">alex_actions</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">array</span><span> </span><span class="hs-special">(</span><span class="hs-number">0</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">Int</span><span class="hs-special">,</span><span> </span><span class="hs-number">30</span><span class="hs-special">)</span><span>
</span><span id="line-139"></span><span>  </span><span class="hs-special">[</span><span> </span><span class="hs-special">(</span><span class="hs-number">29</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_0</span><span class="hs-special">)</span><span>
</span><span id="line-140"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">28</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_20</span><span class="hs-special">)</span><span>
</span><span id="line-141"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">27</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_16</span><span class="hs-special">)</span><span>
</span><span id="line-142"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">26</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_3</span><span class="hs-special">)</span><span>
</span><span id="line-143"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">25</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_1</span><span class="hs-special">)</span><span>
</span><span id="line-144"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">24</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_1</span><span class="hs-special">)</span><span>
</span><span id="line-145"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">23</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_3</span><span class="hs-special">)</span><span>
</span><span id="line-146"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">22</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_4</span><span class="hs-special">)</span><span>
</span><span id="line-147"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">21</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_5</span><span class="hs-special">)</span><span>
</span><span id="line-148"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">20</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_8</span><span class="hs-special">)</span><span>
</span><span id="line-149"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">19</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_8</span><span class="hs-special">)</span><span>
</span><span id="line-150"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">18</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_8</span><span class="hs-special">)</span><span>
</span><span id="line-151"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">17</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_9</span><span class="hs-special">)</span><span>
</span><span id="line-152"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">16</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_9</span><span class="hs-special">)</span><span>
</span><span id="line-153"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">15</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_10</span><span class="hs-special">)</span><span>
</span><span id="line-154"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">14</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_11</span><span class="hs-special">)</span><span>
</span><span id="line-155"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">13</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_12</span><span class="hs-special">)</span><span>
</span><span id="line-156"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">12</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_13</span><span class="hs-special">)</span><span>
</span><span id="line-157"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">11</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_14</span><span class="hs-special">)</span><span>
</span><span id="line-158"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">10</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_15</span><span class="hs-special">)</span><span>
</span><span id="line-159"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">9</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_15</span><span class="hs-special">)</span><span>
</span><span id="line-160"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">8</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_16</span><span class="hs-special">)</span><span>
</span><span id="line-161"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">7</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_18</span><span class="hs-special">)</span><span>
</span><span id="line-162"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">6</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_19</span><span class="hs-special">)</span><span>
</span><span id="line-163"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">5</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_19</span><span class="hs-special">)</span><span>
</span><span id="line-164"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">4</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_22</span><span class="hs-special">)</span><span>
</span><span id="line-165"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">3</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_23</span><span class="hs-special">)</span><span>
</span><span id="line-166"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">2</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_24</span><span class="hs-special">)</span><span>
</span><span id="line-167"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">1</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_25</span><span class="hs-special">)</span><span>
</span><span id="line-168"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-number">0</span><span class="hs-special">,</span><span class="hs-identifier">alex_action_25</span><span class="hs-special">)</span><span>
</span><span id="line-169"></span><span>  </span><span class="hs-special">]</span><span>
</span><span id="line-170"></span><span>
</span><span id="line-171"></span><span class="hs-pragma">{-# LINE 151 &quot;boot/Lexer.x&quot; #-}</span><span>
</span><span id="line-151"></span><span>
</span><span id="line-152"></span><span class="hs-comment">-- | Tokens of outer cabal file structure. Field values are treated opaquely.</span><span>
</span><span id="line-153"></span><span class="hs-keyword">data</span><span> </span><span class="hs-identifier">Token</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">TokSym</span><span>   </span><span class="hs-glyph">!</span><span class="hs-identifier">ByteString</span><span>       </span><span class="hs-comment">-- ^ Haskell-like identifier, number or operator</span><span>
</span><span id="line-154"></span><span>           </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">TokStr</span><span>   </span><span class="hs-glyph">!</span><span class="hs-identifier">ByteString</span><span>       </span><span class="hs-comment">-- ^ String in quotes</span><span>
</span><span id="line-155"></span><span>           </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">TokOther</span><span> </span><span class="hs-glyph">!</span><span class="hs-identifier">ByteString</span><span>       </span><span class="hs-comment">-- ^ Operators and parens</span><span>
</span><span id="line-156"></span><span>           </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">Indent</span><span>   </span><span class="hs-glyph">!</span><span class="hs-identifier">Int</span><span>              </span><span class="hs-comment">-- ^ Indentation token</span><span>
</span><span id="line-157"></span><span>           </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">TokFieldLine</span><span> </span><span class="hs-glyph">!</span><span class="hs-identifier">ByteString</span><span>   </span><span class="hs-comment">-- ^ Lines after @:@</span><span>
</span><span id="line-158"></span><span>           </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">Colon</span><span>
</span><span id="line-159"></span><span>           </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">OpenBrace</span><span>
</span><span id="line-160"></span><span>           </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">CloseBrace</span><span>
</span><span id="line-161"></span><span>           </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">EOF</span><span>
</span><span id="line-162"></span><span>           </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">LexicalError</span><span> </span><span class="hs-identifier">InputStream</span><span> </span><span class="hs-comment">--TODO: add separate string lexical error</span><span>
</span><span id="line-163"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-identifier">Show</span><span>
</span><span id="line-164"></span><span>
</span><span id="line-165"></span><span class="hs-keyword">data</span><span> </span><span class="hs-identifier">LToken</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">L</span><span> </span><span class="hs-glyph">!</span><span class="hs-identifier">Position</span><span> </span><span class="hs-glyph">!</span><span class="hs-identifier">Token</span><span>
</span><span id="line-166"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-identifier">Show</span><span>
</span><span id="line-167"></span><span>
</span><span id="line-168"></span><span class="hs-identifier">toki</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">ByteString</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">Token</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">Position</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">Int</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">ByteString</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">Lex</span><span> </span><span class="hs-identifier">LToken</span><span>
</span><span id="line-169"></span><span class="hs-identifier">toki</span><span> </span><span class="hs-identifier">t</span><span> </span><span class="hs-identifier">pos</span><span>  </span><span class="hs-identifier">len</span><span>  </span><span class="hs-identifier">input</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">return</span><span> </span><span class="hs-operator">$!</span><span> </span><span class="hs-identifier">L</span><span> </span><span class="hs-identifier">pos</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">t</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">B.take</span><span> </span><span class="hs-identifier">len</span><span> </span><span class="hs-identifier">input</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-170"></span><span>
</span><span id="line-171"></span><span class="hs-identifier">tok</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">Token</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">Position</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">Int</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">ByteString</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">Lex</span><span> </span><span class="hs-identifier">LToken</span><span>
</span><span id="line-172"></span><span class="hs-identifier">tok</span><span>  </span><span class="hs-identifier">t</span><span> </span><span class="hs-identifier">pos</span><span> </span><span class="hs-identifier">_len</span><span> </span><span class="hs-identifier">_input</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">return</span><span> </span><span class="hs-operator">$!</span><span> </span><span class="hs-identifier">L</span><span> </span><span class="hs-identifier">pos</span><span> </span><span class="hs-identifier">t</span><span>
</span><span id="line-173"></span><span>
</span><span id="line-174"></span><span class="hs-identifier">checkLeadingWhitespace</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">Int</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">ByteString</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">Lex</span><span> </span><span class="hs-identifier">Int</span><span>
</span><span id="line-175"></span><span class="hs-identifier">checkLeadingWhitespace</span><span> </span><span class="hs-identifier">len</span><span> </span><span class="hs-identifier">bs</span><span>
</span><span id="line-176"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">B.any</span><span> </span><span class="hs-special">(</span><span class="hs-operator">==</span><span> </span><span class="hs-number">9</span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">B.take</span><span> </span><span class="hs-identifier">len</span><span> </span><span class="hs-identifier">bs</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-177"></span><span>        </span><span class="hs-identifier">addWarning</span><span> </span><span class="hs-identifier">LexWarningTab</span><span>
</span><span id="line-178"></span><span>        </span><span class="hs-identifier">checkWhitespace</span><span> </span><span class="hs-identifier">len</span><span> </span><span class="hs-identifier">bs</span><span>
</span><span id="line-179"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">otherwise</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">checkWhitespace</span><span> </span><span class="hs-identifier">len</span><span> </span><span class="hs-identifier">bs</span><span>
</span><span id="line-180"></span><span>
</span><span id="line-181"></span><span class="hs-identifier">checkWhitespace</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">Int</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">ByteString</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">Lex</span><span> </span><span class="hs-identifier">Int</span><span>
</span><span id="line-182"></span><span class="hs-identifier">checkWhitespace</span><span> </span><span class="hs-identifier">len</span><span> </span><span class="hs-identifier">bs</span><span>
</span><span id="line-183"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">B.any</span><span> </span><span class="hs-special">(</span><span class="hs-operator">==</span><span> </span><span class="hs-number">194</span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">B.take</span><span> </span><span class="hs-identifier">len</span><span> </span><span class="hs-identifier">bs</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-184"></span><span>        </span><span class="hs-identifier">addWarning</span><span> </span><span class="hs-identifier">LexWarningNBSP</span><span>
</span><span id="line-185"></span><span>        </span><span class="hs-identifier">return</span><span> </span><span class="hs-operator">$</span><span> </span><span class="hs-identifier">len</span><span> </span><span class="hs-glyph">-</span><span> </span><span class="hs-identifier">B.count</span><span> </span><span class="hs-number">194</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">B.take</span><span> </span><span class="hs-identifier">len</span><span> </span><span class="hs-identifier">bs</span><span class="hs-special">)</span><span>
</span><span id="line-186"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">otherwise</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">return</span><span> </span><span class="hs-identifier">len</span><span>
</span><span id="line-187"></span><span>
</span><span id="line-188"></span><span class="hs-comment">-- -----------------------------------------------------------------------------</span><span>
</span><span id="line-189"></span><span class="hs-comment">-- The input type</span><span>
</span><span id="line-190"></span><span>
</span><span id="line-191"></span><span class="hs-keyword">type</span><span> </span><span class="hs-identifier">AlexInput</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">InputStream</span><span>
</span><span id="line-192"></span><span>
</span><span id="line-193"></span><span class="hs-identifier">alexInputPrevChar</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">AlexInput</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">Char</span><span>
</span><span id="line-194"></span><span class="hs-identifier">alexInputPrevChar</span><span> </span><span class="hs-identifier">_</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">error</span><span> </span><span class="hs-string">&quot;alexInputPrevChar not used&quot;</span><span>
</span><span id="line-195"></span><span>
</span><span id="line-196"></span><span class="hs-identifier">alexGetByte</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">AlexInput</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">Maybe</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">Word.Word8</span><span class="hs-special">,</span><span class="hs-identifier">AlexInput</span><span class="hs-special">)</span><span>
</span><span id="line-197"></span><span class="hs-identifier">alexGetByte</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">B.uncons</span><span>
</span><span id="line-198"></span><span>
</span><span id="line-199"></span><span class="hs-identifier">lexicalError</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">Position</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">InputStream</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">Lex</span><span> </span><span class="hs-identifier">LToken</span><span>
</span><span id="line-200"></span><span class="hs-identifier">lexicalError</span><span> </span><span class="hs-identifier">pos</span><span> </span><span class="hs-identifier">inp</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-201"></span><span>  </span><span class="hs-identifier">setInput</span><span> </span><span class="hs-identifier">B.empty</span><span>
</span><span id="line-202"></span><span>  </span><span class="hs-identifier">return</span><span> </span><span class="hs-operator">$!</span><span> </span><span class="hs-identifier">L</span><span> </span><span class="hs-identifier">pos</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">LexicalError</span><span> </span><span class="hs-identifier">inp</span><span class="hs-special">)</span><span>
</span><span id="line-203"></span><span>
</span><span id="line-204"></span><span class="hs-identifier">lexToken</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">Lex</span><span> </span><span class="hs-identifier">LToken</span><span>
</span><span id="line-205"></span><span class="hs-identifier">lexToken</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-206"></span><span>  </span><span class="hs-identifier">pos</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-identifier">getPos</span><span>
</span><span id="line-207"></span><span>  </span><span class="hs-identifier">inp</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-identifier">getInput</span><span>
</span><span id="line-208"></span><span>  </span><span class="hs-identifier">st</span><span>  </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-identifier">getStartCode</span><span>
</span><span id="line-209"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="hs-identifier">alexScan</span><span> </span><span class="hs-identifier">inp</span><span> </span><span class="hs-identifier">st</span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-210"></span><span>    </span><span class="hs-identifier">AlexEOF</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">return</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">L</span><span> </span><span class="hs-identifier">pos</span><span> </span><span class="hs-identifier">EOF</span><span class="hs-special">)</span><span>
</span><span id="line-211"></span><span>    </span><span class="hs-identifier">AlexError</span><span> </span><span class="hs-identifier">inp'</span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-212"></span><span>        </span><span class="hs-keyword">let</span><span> </span><span class="hs-glyph">!</span><span class="hs-identifier">len_bytes</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">B.length</span><span> </span><span class="hs-identifier">inp</span><span> </span><span class="hs-glyph">-</span><span> </span><span class="hs-identifier">B.length</span><span> </span><span class="hs-identifier">inp'</span><span> </span><span class="hs-keyword">in</span><span>
</span><span id="line-213"></span><span>            </span><span class="hs-comment">--FIXME: we want len_chars here really</span><span>
</span><span id="line-214"></span><span>            </span><span class="hs-comment">-- need to decode utf8 up to this point</span><span>
</span><span id="line-215"></span><span>        </span><span class="hs-identifier">lexicalError</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">incPos</span><span> </span><span class="hs-identifier">len_bytes</span><span> </span><span class="hs-identifier">pos</span><span class="hs-special">)</span><span> </span><span class="hs-identifier">inp'</span><span>
</span><span id="line-216"></span><span>    </span><span class="hs-identifier">AlexSkip</span><span>  </span><span class="hs-identifier">inp'</span><span> </span><span class="hs-identifier">len_chars</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-217"></span><span>        </span><span class="hs-identifier">checkPosition</span><span> </span><span class="hs-identifier">pos</span><span> </span><span class="hs-identifier">inp</span><span> </span><span class="hs-identifier">inp'</span><span> </span><span class="hs-identifier">len_chars</span><span>
</span><span id="line-218"></span><span>        </span><span class="hs-identifier">adjustPos</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">incPos</span><span> </span><span class="hs-identifier">len_chars</span><span class="hs-special">)</span><span>
</span><span id="line-219"></span><span>        </span><span class="hs-identifier">setInput</span><span> </span><span class="hs-identifier">inp'</span><span>
</span><span id="line-220"></span><span>        </span><span class="hs-identifier">lexToken</span><span>
</span><span id="line-221"></span><span>    </span><span class="hs-identifier">AlexToken</span><span> </span><span class="hs-identifier">inp'</span><span> </span><span class="hs-identifier">len_chars</span><span> </span><span class="hs-identifier">action</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-222"></span><span>        </span><span class="hs-identifier">checkPosition</span><span> </span><span class="hs-identifier">pos</span><span> </span><span class="hs-identifier">inp</span><span> </span><span class="hs-identifier">inp'</span><span> </span><span class="hs-identifier">len_chars</span><span>
</span><span id="line-223"></span><span>        </span><span class="hs-identifier">adjustPos</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">incPos</span><span> </span><span class="hs-identifier">len_chars</span><span class="hs-special">)</span><span>
</span><span id="line-224"></span><span>        </span><span class="hs-identifier">setInput</span><span> </span><span class="hs-identifier">inp'</span><span>
</span><span id="line-225"></span><span>        </span><span class="hs-keyword">let</span><span> </span><span class="hs-glyph">!</span><span class="hs-identifier">len_bytes</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">B.length</span><span> </span><span class="hs-identifier">inp</span><span> </span><span class="hs-glyph">-</span><span> </span><span class="hs-identifier">B.length</span><span> </span><span class="hs-identifier">inp'</span><span>
</span><span id="line-226"></span><span>        </span><span class="hs-identifier">t</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-identifier">action</span><span> </span><span class="hs-identifier">pos</span><span> </span><span class="hs-identifier">len_bytes</span><span> </span><span class="hs-identifier">inp</span><span>
</span><span id="line-227"></span><span>        </span><span class="hs-comment">--traceShow t $ return tok</span><span>
</span><span id="line-228"></span><span>        </span><span class="hs-identifier">return</span><span> </span><span class="hs-identifier">t</span><span>
</span><span id="line-229"></span><span>
</span><span id="line-230"></span><span class="hs-identifier">checkPosition</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">Position</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">ByteString</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">ByteString</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">Int</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">Lex</span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-cpp">
#ifdef CABAL_PARSEC_DEBUG
</span><span class="hs-identifier">checkPosition</span><span> </span><span class="hs-identifier">pos</span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="hs-identifier">Position</span><span> </span><span class="hs-identifier">lineno</span><span> </span><span class="hs-identifier">colno</span><span class="hs-special">)</span><span> </span><span class="hs-identifier">inp</span><span> </span><span class="hs-identifier">inp'</span><span> </span><span class="hs-identifier">len_chars</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-233"></span><span>    </span><span class="hs-identifier">text_lines</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-identifier">getDbgText</span><span>
</span><span id="line-234"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span class="hs-identifier">len_bytes</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">B.length</span><span> </span><span class="hs-identifier">inp</span><span> </span><span class="hs-glyph">-</span><span> </span><span class="hs-identifier">B.length</span><span> </span><span class="hs-identifier">inp'</span><span>
</span><span id="line-235"></span><span>        </span><span class="hs-identifier">pos_txt</span><span>   </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">lineno</span><span class="hs-glyph">-</span><span class="hs-number">1</span><span> </span><span class="hs-operator">&lt;</span><span> </span><span class="hs-identifier">V.length</span><span> </span><span class="hs-identifier">text_lines</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">T.take</span><span> </span><span class="hs-identifier">len_chars</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">T.drop</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">colno</span><span class="hs-glyph">-</span><span class="hs-number">1</span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">text_lines</span><span> </span><span class="hs-operator">V.!</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">lineno</span><span class="hs-glyph">-</span><span class="hs-number">1</span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-236"></span><span>                  </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">otherwise</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">T.empty</span><span>
</span><span id="line-237"></span><span>        </span><span class="hs-identifier">real_txt</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">B.take</span><span> </span><span class="hs-identifier">len_bytes</span><span> </span><span class="hs-identifier">inp</span><span>
</span><span id="line-238"></span><span>    </span><span class="hs-identifier">when</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">pos_txt</span><span> </span><span class="hs-operator">/=</span><span> </span><span class="hs-identifier">T.decodeUtf8</span><span> </span><span class="hs-identifier">real_txt</span><span class="hs-special">)</span><span> </span><span class="hs-operator">$</span><span>
</span><span id="line-239"></span><span>      </span><span class="hs-identifier">traceShow</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">pos</span><span class="hs-special">,</span><span> </span><span class="hs-identifier">pos_txt</span><span class="hs-special">,</span><span> </span><span class="hs-identifier">T.decodeUtf8</span><span> </span><span class="hs-identifier">real_txt</span><span class="hs-special">)</span><span> </span><span class="hs-operator">$</span><span>
</span><span id="line-240"></span><span>      </span><span class="hs-identifier">traceShow</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">take</span><span> </span><span class="hs-number">3</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">V.toList</span><span> </span><span class="hs-identifier">text_lines</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-operator">$</span><span> </span><span class="hs-identifier">return</span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-241"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-242"></span><span>    </span><span class="hs-identifier">getDbgText</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">Lex</span><span> </span><span class="hs-operator">$</span><span> </span><span class="hs-glyph">\</span><span class="hs-identifier">s</span><span class="hs-glyph">@</span><span class="hs-identifier">LexState</span><span class="hs-special">{</span><span> </span><span class="hs-identifier">dbgText</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">txt</span><span> </span><span class="hs-special">}</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">LexResult</span><span> </span><span class="hs-identifier">s</span><span> </span><span class="hs-identifier">txt</span><span class="hs-cpp">
#else
</span><span class="hs-identifier">checkPosition</span><span> </span><span class="hs-identifier">_</span><span> </span><span class="hs-identifier">_</span><span> </span><span class="hs-identifier">_</span><span> </span><span class="hs-identifier">_</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">return</span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-cpp">
#endif
</span><span>
</span><span id="line-247"></span><span class="hs-identifier">lexAll</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">Lex</span><span> </span><span class="hs-special">[</span><span class="hs-identifier">LToken</span><span class="hs-special">]</span><span>
</span><span id="line-248"></span><span class="hs-identifier">lexAll</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-249"></span><span>  </span><span class="hs-identifier">t</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-identifier">lexToken</span><span>
</span><span id="line-250"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="hs-identifier">t</span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-251"></span><span>    </span><span class="hs-identifier">L</span><span> </span><span class="hs-identifier">_</span><span> </span><span class="hs-identifier">EOF</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">return</span><span> </span><span class="hs-special">[</span><span class="hs-identifier">t</span><span class="hs-special">]</span><span>
</span><span id="line-252"></span><span>    </span><span class="hs-identifier">_</span><span>       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span> </span><span class="hs-identifier">ts</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-identifier">lexAll</span><span>
</span><span id="line-253"></span><span>                  </span><span class="hs-identifier">return</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">t</span><span> </span><span class="hs-glyph">:</span><span> </span><span class="hs-identifier">ts</span><span class="hs-special">)</span><span>
</span><span id="line-254"></span><span>
</span><span id="line-255"></span><span class="hs-identifier">ltest</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">Int</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">String</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">Prelude.IO</span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-256"></span><span class="hs-identifier">ltest</span><span> </span><span class="hs-identifier">code</span><span> </span><span class="hs-identifier">s</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-257"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">ws</span><span class="hs-special">,</span><span> </span><span class="hs-identifier">xs</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">execLexer</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">setStartCode</span><span> </span><span class="hs-identifier">code</span><span> </span><span class="hs-operator">&gt;&gt;</span><span> </span><span class="hs-identifier">lexAll</span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">B.Char8.pack</span><span> </span><span class="hs-identifier">s</span><span class="hs-special">)</span><span>
</span><span id="line-258"></span><span>   </span><span class="hs-keyword">in</span><span> </span><span class="hs-identifier">traverse_</span><span> </span><span class="hs-identifier">print</span><span> </span><span class="hs-identifier">ws</span><span> </span><span class="hs-operator">&gt;&gt;</span><span> </span><span class="hs-identifier">traverse_</span><span> </span><span class="hs-identifier">print</span><span> </span><span class="hs-identifier">xs</span><span>
</span><span id="line-259"></span><span>
</span><span id="line-260"></span><span class="hs-identifier">mkLexState</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">ByteString</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">LexState</span><span>
</span><span id="line-261"></span><span class="hs-identifier">mkLexState</span><span> </span><span class="hs-identifier">input</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">LexState</span><span>
</span><span id="line-262"></span><span>  </span><span class="hs-special">{</span><span> </span><span class="hs-identifier">curPos</span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">Position</span><span> </span><span class="hs-number">1</span><span> </span><span class="hs-number">1</span><span>
</span><span id="line-263"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">curInput</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">input</span><span>
</span><span id="line-264"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">curCode</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-number">0</span><span>
</span><span id="line-265"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">warnings</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-cpp">
#ifdef CABAL_PARSEC_DEBUG
</span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">dbgText</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">V.fromList</span><span> </span><span class="hs-operator">.</span><span> </span><span class="hs-identifier">lines'</span><span> </span><span class="hs-operator">.</span><span> </span><span class="hs-identifier">T.decodeUtf8With</span><span> </span><span class="hs-identifier">T.lenientDecode</span><span> </span><span class="hs-operator">$</span><span> </span><span class="hs-identifier">input</span><span class="hs-cpp">
#endif
</span><span>  </span><span class="hs-special">}</span><span class="hs-cpp">

#ifdef CABAL_PARSEC_DEBUG
</span><span class="hs-identifier">lines'</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">T.Text</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-identifier">T.Text</span><span class="hs-special">]</span><span>
</span><span id="line-273"></span><span class="hs-identifier">lines'</span><span> </span><span class="hs-identifier">s1</span><span>
</span><span id="line-274"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">T.null</span><span> </span><span class="hs-identifier">s1</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-275"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">otherwise</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="hs-identifier">T.break</span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span class="hs-identifier">c</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">c</span><span> </span><span class="hs-operator">==</span><span> </span><span class="hs-char">'\r'</span><span> </span><span class="hs-operator">||</span><span> </span><span class="hs-identifier">c</span><span> </span><span class="hs-operator">==</span><span> </span><span class="hs-char">'\n'</span><span class="hs-special">)</span><span> </span><span class="hs-identifier">s1</span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-276"></span><span>                  </span><span class="hs-special">(</span><span class="hs-identifier">l</span><span class="hs-special">,</span><span> </span><span class="hs-identifier">s2</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">Just</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">c</span><span class="hs-special">,</span><span class="hs-identifier">s3</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-identifier">T.uncons</span><span> </span><span class="hs-identifier">s2</span><span>
</span><span id="line-277"></span><span>                         </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="hs-identifier">T.uncons</span><span> </span><span class="hs-identifier">s3</span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-278"></span><span>                              </span><span class="hs-identifier">Just</span><span> </span><span class="hs-special">(</span><span class="hs-char">'\n'</span><span class="hs-special">,</span><span> </span><span class="hs-identifier">s4</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">c</span><span> </span><span class="hs-operator">==</span><span> </span><span class="hs-char">'\r'</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">l</span><span> </span><span class="hs-special">`</span><span class="hs-identifier">T.snoc</span><span class="hs-special">`</span><span> </span><span class="hs-char">'\r'</span><span> </span><span class="hs-special">`</span><span class="hs-identifier">T.snoc</span><span class="hs-special">`</span><span> </span><span class="hs-char">'\n'</span><span> </span><span class="hs-glyph">:</span><span> </span><span class="hs-identifier">lines'</span><span> </span><span class="hs-identifier">s4</span><span>
</span><span id="line-279"></span><span>                              </span><span class="hs-identifier">_</span><span>                           </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">l</span><span> </span><span class="hs-special">`</span><span class="hs-identifier">T.snoc</span><span class="hs-special">`</span><span> </span><span class="hs-identifier">c</span><span> </span><span class="hs-glyph">:</span><span> </span><span class="hs-identifier">lines'</span><span> </span><span class="hs-identifier">s3</span><span>
</span><span id="line-280"></span><span>
</span><span id="line-281"></span><span>                          </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">otherwise</span><span>
</span><span id="line-282"></span><span>                         </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="hs-identifier">l</span><span class="hs-special">]</span><span class="hs-cpp">
#endif
</span><span>
</span><span id="line-285"></span><span class="hs-identifier">bol_field_braces</span><span class="hs-special">,</span><span class="hs-identifier">bol_field_layout</span><span class="hs-special">,</span><span class="hs-identifier">bol_section</span><span class="hs-special">,</span><span class="hs-identifier">in_field_braces</span><span class="hs-special">,</span><span class="hs-identifier">in_field_layout</span><span class="hs-special">,</span><span class="hs-identifier">in_section</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">Int</span><span>
</span><span id="line-286"></span><span class="hs-identifier">bol_field_braces</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-number">1</span><span>
</span><span id="line-287"></span><span class="hs-identifier">bol_field_layout</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-number">2</span><span>
</span><span id="line-288"></span><span class="hs-identifier">bol_section</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-number">3</span><span>
</span><span id="line-289"></span><span class="hs-identifier">in_field_braces</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-number">4</span><span>
</span><span id="line-290"></span><span class="hs-identifier">in_field_layout</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-number">5</span><span>
</span><span id="line-291"></span><span class="hs-identifier">in_section</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-number">6</span><span>
</span><span id="line-292"></span><span class="hs-identifier">alex_action_0</span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="hs-glyph">\</span><span class="hs-identifier">_</span><span> </span><span class="hs-identifier">len</span><span> </span><span class="hs-identifier">_</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-293"></span><span>              </span><span class="hs-identifier">when</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">len</span><span> </span><span class="hs-operator">/=</span><span> </span><span class="hs-number">0</span><span class="hs-special">)</span><span> </span><span class="hs-operator">$</span><span> </span><span class="hs-identifier">addWarning</span><span> </span><span class="hs-identifier">LexWarningBOM</span><span>
</span><span id="line-294"></span><span>              </span><span class="hs-identifier">setStartCode</span><span> </span><span class="hs-identifier">bol_section</span><span>
</span><span id="line-295"></span><span>              </span><span class="hs-identifier">lexToken</span><span>
</span><span id="line-296"></span><span>         </span><span>
</span><span id="line-297"></span><span class="hs-identifier">alex_action_1</span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="hs-glyph">\</span><span class="hs-identifier">_pos</span><span> </span><span class="hs-identifier">len</span><span> </span><span class="hs-identifier">inp</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">checkWhitespace</span><span> </span><span class="hs-identifier">len</span><span> </span><span class="hs-identifier">inp</span><span> </span><span class="hs-operator">&gt;&gt;</span><span> </span><span class="hs-identifier">adjustPos</span><span> </span><span class="hs-identifier">retPos</span><span> </span><span class="hs-operator">&gt;&gt;</span><span> </span><span class="hs-identifier">lexToken</span><span> </span><span>
</span><span id="line-298"></span><span class="hs-identifier">alex_action_3</span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="hs-glyph">\</span><span class="hs-identifier">pos</span><span> </span><span class="hs-identifier">len</span><span> </span><span class="hs-identifier">inp</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">checkLeadingWhitespace</span><span> </span><span class="hs-identifier">len</span><span> </span><span class="hs-identifier">inp</span><span> </span><span class="hs-operator">&gt;&gt;</span><span>
</span><span id="line-299"></span><span>                                     </span><span class="hs-keyword">if</span><span> </span><span class="hs-identifier">B.length</span><span> </span><span class="hs-identifier">inp</span><span> </span><span class="hs-operator">==</span><span> </span><span class="hs-identifier">len</span><span>
</span><span id="line-300"></span><span>                                       </span><span class="hs-keyword">then</span><span> </span><span class="hs-identifier">return</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">L</span><span> </span><span class="hs-identifier">pos</span><span> </span><span class="hs-identifier">EOF</span><span class="hs-special">)</span><span>
</span><span id="line-301"></span><span>                                       </span><span class="hs-keyword">else</span><span> </span><span class="hs-identifier">setStartCode</span><span> </span><span class="hs-identifier">in_section</span><span>
</span><span id="line-302"></span><span>                                         </span><span class="hs-operator">&gt;&gt;</span><span> </span><span class="hs-identifier">return</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">L</span><span> </span><span class="hs-identifier">pos</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">Indent</span><span> </span><span class="hs-identifier">len</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span>
</span><span id="line-303"></span><span class="hs-identifier">alex_action_4</span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="hs-identifier">tok</span><span>  </span><span class="hs-identifier">OpenBrace</span><span> </span><span>
</span><span id="line-304"></span><span class="hs-identifier">alex_action_5</span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="hs-identifier">tok</span><span>  </span><span class="hs-identifier">CloseBrace</span><span> </span><span>
</span><span id="line-305"></span><span class="hs-identifier">alex_action_8</span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="hs-identifier">toki</span><span> </span><span class="hs-identifier">TokSym</span><span> </span><span>
</span><span id="line-306"></span><span class="hs-identifier">alex_action_9</span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="hs-glyph">\</span><span class="hs-identifier">pos</span><span> </span><span class="hs-identifier">len</span><span> </span><span class="hs-identifier">inp</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">return</span><span> </span><span class="hs-operator">$!</span><span> </span><span class="hs-identifier">L</span><span> </span><span class="hs-identifier">pos</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">TokStr</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">B.take</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">len</span><span> </span><span class="hs-glyph">-</span><span> </span><span class="hs-number">2</span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">B.tail</span><span> </span><span class="hs-identifier">inp</span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span>
</span><span id="line-307"></span><span class="hs-identifier">alex_action_10</span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="hs-identifier">toki</span><span> </span><span class="hs-identifier">TokOther</span><span> </span><span>
</span><span id="line-308"></span><span class="hs-identifier">alex_action_11</span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="hs-identifier">toki</span><span> </span><span class="hs-identifier">TokOther</span><span> </span><span>
</span><span id="line-309"></span><span class="hs-identifier">alex_action_12</span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="hs-identifier">tok</span><span>  </span><span class="hs-identifier">Colon</span><span> </span><span>
</span><span id="line-310"></span><span class="hs-identifier">alex_action_13</span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="hs-identifier">tok</span><span>  </span><span class="hs-identifier">OpenBrace</span><span> </span><span>
</span><span id="line-311"></span><span class="hs-identifier">alex_action_14</span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="hs-identifier">tok</span><span>  </span><span class="hs-identifier">CloseBrace</span><span> </span><span>
</span><span id="line-312"></span><span class="hs-identifier">alex_action_15</span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="hs-glyph">\</span><span class="hs-identifier">_</span><span> </span><span class="hs-identifier">_</span><span> </span><span class="hs-identifier">_</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">adjustPos</span><span> </span><span class="hs-identifier">retPos</span><span> </span><span class="hs-operator">&gt;&gt;</span><span> </span><span class="hs-identifier">setStartCode</span><span> </span><span class="hs-identifier">bol_section</span><span> </span><span class="hs-operator">&gt;&gt;</span><span> </span><span class="hs-identifier">lexToken</span><span> </span><span>
</span><span id="line-313"></span><span class="hs-identifier">alex_action_16</span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="hs-glyph">\</span><span class="hs-identifier">pos</span><span> </span><span class="hs-identifier">len</span><span> </span><span class="hs-identifier">inp</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">checkLeadingWhitespace</span><span> </span><span class="hs-identifier">len</span><span> </span><span class="hs-identifier">inp</span><span> </span><span class="hs-operator">&gt;&gt;=</span><span> </span><span class="hs-glyph">\</span><span class="hs-identifier">len'</span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-314"></span><span>                                  </span><span class="hs-keyword">if</span><span> </span><span class="hs-identifier">B.length</span><span> </span><span class="hs-identifier">inp</span><span> </span><span class="hs-operator">==</span><span> </span><span class="hs-identifier">len</span><span>
</span><span id="line-315"></span><span>                                    </span><span class="hs-keyword">then</span><span> </span><span class="hs-identifier">return</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">L</span><span> </span><span class="hs-identifier">pos</span><span> </span><span class="hs-identifier">EOF</span><span class="hs-special">)</span><span>
</span><span id="line-316"></span><span>                                    </span><span class="hs-keyword">else</span><span> </span><span class="hs-identifier">setStartCode</span><span> </span><span class="hs-identifier">in_field_layout</span><span>
</span><span id="line-317"></span><span>                                      </span><span class="hs-operator">&gt;&gt;</span><span> </span><span class="hs-identifier">return</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">L</span><span> </span><span class="hs-identifier">pos</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">Indent</span><span> </span><span class="hs-identifier">len'</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span>
</span><span id="line-318"></span><span class="hs-identifier">alex_action_18</span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="hs-identifier">toki</span><span> </span><span class="hs-identifier">TokFieldLine</span><span> </span><span>
</span><span id="line-319"></span><span class="hs-identifier">alex_action_19</span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="hs-glyph">\</span><span class="hs-identifier">_</span><span> </span><span class="hs-identifier">_</span><span> </span><span class="hs-identifier">_</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">adjustPos</span><span> </span><span class="hs-identifier">retPos</span><span> </span><span class="hs-operator">&gt;&gt;</span><span> </span><span class="hs-identifier">setStartCode</span><span> </span><span class="hs-identifier">bol_field_layout</span><span> </span><span class="hs-operator">&gt;&gt;</span><span> </span><span class="hs-identifier">lexToken</span><span> </span><span>
</span><span id="line-320"></span><span class="hs-identifier">alex_action_20</span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="hs-glyph">\</span><span class="hs-identifier">_</span><span> </span><span class="hs-identifier">_</span><span> </span><span class="hs-identifier">_</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">setStartCode</span><span> </span><span class="hs-identifier">in_field_braces</span><span> </span><span class="hs-operator">&gt;&gt;</span><span> </span><span class="hs-identifier">lexToken</span><span> </span><span>
</span><span id="line-321"></span><span class="hs-identifier">alex_action_22</span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="hs-identifier">toki</span><span> </span><span class="hs-identifier">TokFieldLine</span><span> </span><span>
</span><span id="line-322"></span><span class="hs-identifier">alex_action_23</span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="hs-identifier">tok</span><span>  </span><span class="hs-identifier">OpenBrace</span><span>  </span><span>
</span><span id="line-323"></span><span class="hs-identifier">alex_action_24</span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="hs-identifier">tok</span><span>  </span><span class="hs-identifier">CloseBrace</span><span> </span><span>
</span><span id="line-324"></span><span class="hs-identifier">alex_action_25</span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="hs-glyph">\</span><span class="hs-identifier">_</span><span> </span><span class="hs-identifier">_</span><span> </span><span class="hs-identifier">_</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">adjustPos</span><span> </span><span class="hs-identifier">retPos</span><span> </span><span class="hs-operator">&gt;&gt;</span><span> </span><span class="hs-identifier">setStartCode</span><span> </span><span class="hs-identifier">bol_field_braces</span><span> </span><span class="hs-operator">&gt;&gt;</span><span> </span><span class="hs-identifier">lexToken</span><span> </span><span>
</span><span id="line-325"></span><span class="hs-pragma">{-# LINE 1 &quot;templates/GenericTemplate.hs&quot; #-}</span><span>
</span><span id="line-1"></span><span class="hs-comment">-- -----------------------------------------------------------------------------</span><span>
</span><span id="line-2"></span><span class="hs-comment">-- ALEX TEMPLATE</span><span>
</span><span id="line-3"></span><span class="hs-comment">--</span><span>
</span><span id="line-4"></span><span class="hs-comment">-- This code is in the PUBLIC DOMAIN; you may copy it freely and use</span><span>
</span><span id="line-5"></span><span class="hs-comment">-- it for any purpose whatsoever.</span><span>
</span><span id="line-6"></span><span>
</span><span id="line-7"></span><span class="hs-comment">-- -----------------------------------------------------------------------------</span><span>
</span><span id="line-8"></span><span class="hs-comment">-- INTERNALS and main scanner engine</span><span>
</span><span id="line-9"></span><span>
</span><span id="line-10"></span><span class="hs-comment">-- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.</span><span class="hs-cpp">
#if __GLASGOW_HASKELL__ &gt; 706
</span><span class="hs-cpp">#define GTE(n,m) (tagToEnum# (n &gt;=# m))
</span><span class="hs-cpp">#define EQ(n,m) (tagToEnum# (n ==# m))
</span><span class="hs-cpp">#else
</span><span class="hs-cpp">#define GTE(n,m) (n &gt;=# m)
</span><span class="hs-cpp">#define EQ(n,m) (n ==# m)
</span><span class="hs-cpp">#endif
</span><span>
</span><span id="line-19"></span><span class="hs-keyword">data</span><span> </span><span class="hs-identifier">AlexAddr</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">AlexA#</span><span> </span><span class="hs-identifier">Addr#</span><span>
</span><span id="line-20"></span><span class="hs-comment">-- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.</span><span class="hs-cpp">
#if __GLASGOW_HASKELL__ &lt; 503
</span><span class="hs-identifier">uncheckedShiftL#</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">shiftL#</span><span class="hs-cpp">
#endif
</span><span>
</span><span id="line-25"></span><span class="hs-pragma">{-# INLINE</span><span> </span><span class="hs-pragma">alexIndexInt16OffAddr</span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-26"></span><span class="hs-identifier">alexIndexInt16OffAddr</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">AlexAddr</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">Int#</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">Int#</span><span>
</span><span id="line-27"></span><span class="hs-identifier">alexIndexInt16OffAddr</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">AlexA#</span><span> </span><span class="hs-identifier">arr</span><span class="hs-special">)</span><span> </span><span class="hs-identifier">off</span><span> </span><span class="hs-glyph">=</span><span class="hs-cpp">
#ifdef WORDS_BIGENDIAN
</span><span>  </span><span class="hs-identifier">narrow16Int#</span><span> </span><span class="hs-identifier">i</span><span>
</span><span id="line-30"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-31"></span><span>        </span><span class="hs-identifier">i</span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">word2Int#</span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-identifier">high</span><span> </span><span class="hs-special">`</span><span class="hs-identifier">uncheckedShiftL#</span><span class="hs-special">`</span><span> </span><span class="hs-number">8#</span><span class="hs-special">)</span><span> </span><span class="hs-special">`</span><span class="hs-identifier">or#</span><span class="hs-special">`</span><span> </span><span class="hs-identifier">low</span><span class="hs-special">)</span><span>
</span><span id="line-32"></span><span>        </span><span class="hs-identifier">high</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">int2Word#</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">ord#</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">indexCharOffAddr#</span><span> </span><span class="hs-identifier">arr</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">off'</span><span> </span><span class="hs-operator">+#</span><span> </span><span class="hs-number">1#</span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-33"></span><span>        </span><span class="hs-identifier">low</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">int2Word#</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">ord#</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">indexCharOffAddr#</span><span> </span><span class="hs-identifier">arr</span><span> </span><span class="hs-identifier">off'</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-34"></span><span>        </span><span class="hs-identifier">off'</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">off</span><span> </span><span class="hs-operator">*#</span><span> </span><span class="hs-number">2#</span><span class="hs-cpp">
#else
</span><span class="hs-cpp">#if __GLASGOW_HASKELL__ &gt;= 901
</span><span>  </span><span class="hs-identifier">int16ToInt#</span><span class="hs-cpp">
#endif
</span><span>    </span><span class="hs-special">(</span><span class="hs-identifier">indexInt16OffAddr#</span><span> </span><span class="hs-identifier">arr</span><span> </span><span class="hs-identifier">off</span><span class="hs-special">)</span><span class="hs-cpp">
#endif
</span><span>
</span><span id="line-42"></span><span class="hs-pragma">{-# INLINE</span><span> </span><span class="hs-pragma">alexIndexInt32OffAddr</span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-43"></span><span class="hs-identifier">alexIndexInt32OffAddr</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">AlexAddr</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">Int#</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">Int#</span><span>
</span><span id="line-44"></span><span class="hs-identifier">alexIndexInt32OffAddr</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">AlexA#</span><span> </span><span class="hs-identifier">arr</span><span class="hs-special">)</span><span> </span><span class="hs-identifier">off</span><span> </span><span class="hs-glyph">=</span><span class="hs-cpp">
#ifdef WORDS_BIGENDIAN
</span><span>  </span><span class="hs-identifier">narrow32Int#</span><span> </span><span class="hs-identifier">i</span><span>
</span><span id="line-47"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-48"></span><span>   </span><span class="hs-identifier">i</span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">word2Int#</span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-identifier">b3</span><span> </span><span class="hs-special">`</span><span class="hs-identifier">uncheckedShiftL#</span><span class="hs-special">`</span><span> </span><span class="hs-number">24#</span><span class="hs-special">)</span><span> </span><span class="hs-special">`</span><span class="hs-identifier">or#</span><span class="hs-special">`</span><span>
</span><span id="line-49"></span><span>                     </span><span class="hs-special">(</span><span class="hs-identifier">b2</span><span> </span><span class="hs-special">`</span><span class="hs-identifier">uncheckedShiftL#</span><span class="hs-special">`</span><span> </span><span class="hs-number">16#</span><span class="hs-special">)</span><span> </span><span class="hs-special">`</span><span class="hs-identifier">or#</span><span class="hs-special">`</span><span>
</span><span id="line-50"></span><span>                     </span><span class="hs-special">(</span><span class="hs-identifier">b1</span><span> </span><span class="hs-special">`</span><span class="hs-identifier">uncheckedShiftL#</span><span class="hs-special">`</span><span> </span><span class="hs-number">8#</span><span class="hs-special">)</span><span> </span><span class="hs-special">`</span><span class="hs-identifier">or#</span><span class="hs-special">`</span><span> </span><span class="hs-identifier">b0</span><span class="hs-special">)</span><span>
</span><span id="line-51"></span><span>   </span><span class="hs-identifier">b3</span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">int2Word#</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">ord#</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">indexCharOffAddr#</span><span> </span><span class="hs-identifier">arr</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">off'</span><span> </span><span class="hs-operator">+#</span><span> </span><span class="hs-number">3#</span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-52"></span><span>   </span><span class="hs-identifier">b2</span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">int2Word#</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">ord#</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">indexCharOffAddr#</span><span> </span><span class="hs-identifier">arr</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">off'</span><span> </span><span class="hs-operator">+#</span><span> </span><span class="hs-number">2#</span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-53"></span><span>   </span><span class="hs-identifier">b1</span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">int2Word#</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">ord#</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">indexCharOffAddr#</span><span> </span><span class="hs-identifier">arr</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">off'</span><span> </span><span class="hs-operator">+#</span><span> </span><span class="hs-number">1#</span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-54"></span><span>   </span><span class="hs-identifier">b0</span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">int2Word#</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">ord#</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">indexCharOffAddr#</span><span> </span><span class="hs-identifier">arr</span><span> </span><span class="hs-identifier">off'</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-55"></span><span>   </span><span class="hs-identifier">off'</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">off</span><span> </span><span class="hs-operator">*#</span><span> </span><span class="hs-number">4#</span><span class="hs-cpp">
#else
</span><span class="hs-cpp">#if __GLASGOW_HASKELL__ &gt;= 901
</span><span>  </span><span class="hs-identifier">int32ToInt#</span><span class="hs-cpp">
#endif
</span><span>    </span><span class="hs-special">(</span><span class="hs-identifier">indexInt32OffAddr#</span><span> </span><span class="hs-identifier">arr</span><span> </span><span class="hs-identifier">off</span><span class="hs-special">)</span><span class="hs-cpp">
#endif
</span><span class="hs-cpp">
#if __GLASGOW_HASKELL__ &lt; 503
</span><span class="hs-identifier">quickIndex</span><span> </span><span class="hs-identifier">arr</span><span> </span><span class="hs-identifier">i</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">arr</span><span> </span><span class="hs-operator">!</span><span> </span><span class="hs-identifier">i</span><span class="hs-cpp">
#else
</span><span class="hs-comment">-- GHC &gt;= 503, unsafeAt is available from Data.Array.Base.</span><span>
</span><span id="line-67"></span><span class="hs-identifier">quickIndex</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">unsafeAt</span><span class="hs-cpp">
#endif
</span><span>
</span><span id="line-70"></span><span class="hs-comment">-- -----------------------------------------------------------------------------</span><span>
</span><span id="line-71"></span><span class="hs-comment">-- Main lexing routines</span><span>
</span><span id="line-72"></span><span>
</span><span id="line-73"></span><span class="hs-keyword">data</span><span> </span><span class="hs-identifier">AlexReturn</span><span> </span><span class="hs-identifier">a</span><span>
</span><span id="line-74"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">AlexEOF</span><span>
</span><span id="line-75"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">AlexError</span><span>  </span><span class="hs-glyph">!</span><span class="hs-identifier">AlexInput</span><span>
</span><span id="line-76"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">AlexSkip</span><span>   </span><span class="hs-glyph">!</span><span class="hs-identifier">AlexInput</span><span> </span><span class="hs-glyph">!</span><span class="hs-identifier">Int</span><span>
</span><span id="line-77"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">AlexToken</span><span>  </span><span class="hs-glyph">!</span><span class="hs-identifier">AlexInput</span><span> </span><span class="hs-glyph">!</span><span class="hs-identifier">Int</span><span> </span><span class="hs-identifier">a</span><span>
</span><span id="line-78"></span><span>
</span><span id="line-79"></span><span class="hs-comment">-- alexScan :: AlexInput -&gt; StartCode -&gt; AlexReturn a</span><span>
</span><span id="line-80"></span><span class="hs-identifier">alexScan</span><span> </span><span class="hs-identifier">input__</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">I#</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">sc</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-81"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">alexScanUser</span><span> </span><span class="hs-identifier">undefined</span><span> </span><span class="hs-identifier">input__</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">I#</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">sc</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-82"></span><span>
</span><span id="line-83"></span><span class="hs-identifier">alexScanUser</span><span> </span><span class="hs-identifier">user__</span><span> </span><span class="hs-identifier">input__</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">I#</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">sc</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-84"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="hs-identifier">alex_scan_tkn</span><span> </span><span class="hs-identifier">user__</span><span> </span><span class="hs-identifier">input__</span><span> </span><span class="hs-number">0#</span><span> </span><span class="hs-identifier">input__</span><span> </span><span class="hs-identifier">sc</span><span> </span><span class="hs-identifier">AlexNone</span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-85"></span><span>  </span><span class="hs-special">(</span><span class="hs-identifier">AlexNone</span><span class="hs-special">,</span><span> </span><span class="hs-identifier">input__'</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-86"></span><span>    </span><span class="hs-keyword">case</span><span> </span><span class="hs-identifier">alexGetByte</span><span> </span><span class="hs-identifier">input__</span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-87"></span><span>      </span><span class="hs-identifier">Nothing</span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-88"></span><span>
</span><span id="line-89"></span><span>                                   </span><span class="hs-identifier">AlexEOF</span><span>
</span><span id="line-90"></span><span>      </span><span class="hs-identifier">Just</span><span> </span><span class="hs-identifier">_</span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-91"></span><span>
</span><span id="line-92"></span><span>                                   </span><span class="hs-identifier">AlexError</span><span> </span><span class="hs-identifier">input__'</span><span>
</span><span id="line-93"></span><span>
</span><span id="line-94"></span><span>  </span><span class="hs-special">(</span><span class="hs-identifier">AlexLastSkip</span><span> </span><span class="hs-identifier">input__''</span><span> </span><span class="hs-identifier">len</span><span class="hs-special">,</span><span> </span><span class="hs-identifier">_</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-95"></span><span>
</span><span id="line-96"></span><span>    </span><span class="hs-identifier">AlexSkip</span><span> </span><span class="hs-identifier">input__''</span><span> </span><span class="hs-identifier">len</span><span>
</span><span id="line-97"></span><span>
</span><span id="line-98"></span><span>  </span><span class="hs-special">(</span><span class="hs-identifier">AlexLastAcc</span><span> </span><span class="hs-identifier">k</span><span> </span><span class="hs-identifier">input__'''</span><span> </span><span class="hs-identifier">len</span><span class="hs-special">,</span><span> </span><span class="hs-identifier">_</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-99"></span><span>
</span><span id="line-100"></span><span>    </span><span class="hs-identifier">AlexToken</span><span> </span><span class="hs-identifier">input__'''</span><span> </span><span class="hs-identifier">len</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">alex_actions</span><span> </span><span class="hs-operator">!</span><span> </span><span class="hs-identifier">k</span><span class="hs-special">)</span><span>
</span><span id="line-101"></span><span>
</span><span id="line-102"></span><span class="hs-comment">-- Push the input through the DFA, remembering the most recent accepting</span><span>
</span><span id="line-103"></span><span class="hs-comment">-- state it encountered.</span><span>
</span><span id="line-104"></span><span>
</span><span id="line-105"></span><span class="hs-identifier">alex_scan_tkn</span><span> </span><span class="hs-identifier">user__</span><span> </span><span class="hs-identifier">orig_input</span><span> </span><span class="hs-identifier">len</span><span> </span><span class="hs-identifier">input__</span><span> </span><span class="hs-identifier">s</span><span> </span><span class="hs-identifier">last_acc</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-106"></span><span>  </span><span class="hs-identifier">input__</span><span> </span><span class="hs-special">`</span><span class="hs-identifier">seq</span><span class="hs-special">`</span><span> </span><span class="hs-comment">-- strict in the input</span><span>
</span><span id="line-107"></span><span>  </span><span class="hs-keyword">let</span><span>
</span><span id="line-108"></span><span>  </span><span class="hs-identifier">new_acc</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">check_accs</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">alex_accept</span><span> </span><span class="hs-special">`</span><span class="hs-identifier">quickIndex</span><span class="hs-special">`</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">I#</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">s</span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-109"></span><span>  </span><span class="hs-keyword">in</span><span>
</span><span id="line-110"></span><span>  </span><span class="hs-identifier">new_acc</span><span> </span><span class="hs-special">`</span><span class="hs-identifier">seq</span><span class="hs-special">`</span><span>
</span><span id="line-111"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="hs-identifier">alexGetByte</span><span> </span><span class="hs-identifier">input__</span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-112"></span><span>     </span><span class="hs-identifier">Nothing</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">new_acc</span><span class="hs-special">,</span><span> </span><span class="hs-identifier">input__</span><span class="hs-special">)</span><span>
</span><span id="line-113"></span><span>     </span><span class="hs-identifier">Just</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">c</span><span class="hs-special">,</span><span> </span><span class="hs-identifier">new_input</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-114"></span><span>
</span><span id="line-115"></span><span>      </span><span class="hs-keyword">case</span><span> </span><span class="hs-identifier">fromIntegral</span><span> </span><span class="hs-identifier">c</span><span> </span><span class="hs-keyword">of</span><span> </span><span class="hs-special">{</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">I#</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">ord_c</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-116"></span><span>        </span><span class="hs-keyword">let</span><span>
</span><span id="line-117"></span><span>                </span><span class="hs-identifier">base</span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">alexIndexInt32OffAddr</span><span> </span><span class="hs-identifier">alex_base</span><span> </span><span class="hs-identifier">s</span><span>
</span><span id="line-118"></span><span>                </span><span class="hs-identifier">offset</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">base</span><span> </span><span class="hs-operator">+#</span><span> </span><span class="hs-identifier">ord_c</span><span class="hs-special">)</span><span>
</span><span id="line-119"></span><span>                </span><span class="hs-identifier">check</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">alexIndexInt16OffAddr</span><span> </span><span class="hs-identifier">alex_check</span><span> </span><span class="hs-identifier">offset</span><span>
</span><span id="line-120"></span><span>
</span><span id="line-121"></span><span>                </span><span class="hs-identifier">new_s</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="hs-identifier">GTE</span><span class="hs-special">(</span><span class="hs-identifier">offset</span><span class="hs-special">,</span><span class="hs-number">0#</span><span class="hs-special">)</span><span> </span><span class="hs-operator">&amp;&amp;</span><span> </span><span class="hs-identifier">EQ</span><span class="hs-special">(</span><span class="hs-identifier">check</span><span class="hs-special">,</span><span class="hs-identifier">ord_c</span><span class="hs-special">)</span><span>
</span><span id="line-122"></span><span>                          </span><span class="hs-keyword">then</span><span> </span><span class="hs-identifier">alexIndexInt16OffAddr</span><span> </span><span class="hs-identifier">alex_table</span><span> </span><span class="hs-identifier">offset</span><span>
</span><span id="line-123"></span><span>                          </span><span class="hs-keyword">else</span><span> </span><span class="hs-identifier">alexIndexInt16OffAddr</span><span> </span><span class="hs-identifier">alex_deflt</span><span> </span><span class="hs-identifier">s</span><span>
</span><span id="line-124"></span><span>        </span><span class="hs-keyword">in</span><span>
</span><span id="line-125"></span><span>        </span><span class="hs-keyword">case</span><span> </span><span class="hs-identifier">new_s</span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-126"></span><span>            </span><span class="hs-number">-1#</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">new_acc</span><span class="hs-special">,</span><span> </span><span class="hs-identifier">input__</span><span class="hs-special">)</span><span>
</span><span id="line-127"></span><span>                </span><span class="hs-comment">-- on an error, we want to keep the input *before* the</span><span>
</span><span id="line-128"></span><span>                </span><span class="hs-comment">-- character that failed, not after.</span><span>
</span><span id="line-129"></span><span>            </span><span class="hs-identifier">_</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">alex_scan_tkn</span><span> </span><span class="hs-identifier">user__</span><span> </span><span class="hs-identifier">orig_input</span><span> </span><span class="hs-special">(</span><span class="hs-keyword">if</span><span> </span><span class="hs-identifier">c</span><span> </span><span class="hs-operator">&lt;</span><span> </span><span class="hs-number">0x80</span><span> </span><span class="hs-operator">||</span><span> </span><span class="hs-identifier">c</span><span> </span><span class="hs-operator">&gt;=</span><span> </span><span class="hs-number">0xC0</span><span> </span><span class="hs-keyword">then</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">len</span><span> </span><span class="hs-operator">+#</span><span> </span><span class="hs-number">1#</span><span class="hs-special">)</span><span> </span><span class="hs-keyword">else</span><span> </span><span class="hs-identifier">len</span><span class="hs-special">)</span><span>
</span><span id="line-130"></span><span>                                                </span><span class="hs-comment">-- note that the length is increased ONLY if this is the 1st byte in a char encoding)</span><span>
</span><span id="line-131"></span><span>                        </span><span class="hs-identifier">new_input</span><span> </span><span class="hs-identifier">new_s</span><span> </span><span class="hs-identifier">new_acc</span><span>
</span><span id="line-132"></span><span>      </span><span class="hs-special">}</span><span>
</span><span id="line-133"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-134"></span><span>        </span><span class="hs-identifier">check_accs</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">AlexAccNone</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">last_acc</span><span>
</span><span id="line-135"></span><span>        </span><span class="hs-identifier">check_accs</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-identifier">a</span><span>  </span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">AlexLastAcc</span><span> </span><span class="hs-identifier">a</span><span> </span><span class="hs-identifier">input__</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">I#</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">len</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-136"></span><span>        </span><span class="hs-identifier">check_accs</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">AlexAccSkip</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">AlexLastSkip</span><span>  </span><span class="hs-identifier">input__</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">I#</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">len</span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-137"></span><span>
</span><span id="line-138"></span><span class="hs-keyword">data</span><span> </span><span class="hs-identifier">AlexLastAcc</span><span>
</span><span id="line-139"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">AlexNone</span><span>
</span><span id="line-140"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">AlexLastAcc</span><span> </span><span class="hs-glyph">!</span><span class="hs-identifier">Int</span><span> </span><span class="hs-glyph">!</span><span class="hs-identifier">AlexInput</span><span> </span><span class="hs-glyph">!</span><span class="hs-identifier">Int</span><span>
</span><span id="line-141"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">AlexLastSkip</span><span>     </span><span class="hs-glyph">!</span><span class="hs-identifier">AlexInput</span><span> </span><span class="hs-glyph">!</span><span class="hs-identifier">Int</span><span>
</span><span id="line-142"></span><span>
</span><span id="line-143"></span><span class="hs-keyword">data</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-identifier">user</span><span>
</span><span id="line-144"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">AlexAccNone</span><span>
</span><span id="line-145"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">AlexAcc</span><span> </span><span class="hs-identifier">Int</span><span>
</span><span id="line-146"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">AlexAccSkip</span><span>
</span><span id="line-147"></span><span>
</span><span id="line-148"></span></pre></body></html>